package dk.sdu.mmmi.opn.assignment3easy.acquaintance;

import java.rmi.RemoteException;
import java.util.List;
import java.util.Set;

import dk.sdu.mmmi.opn.rmi.observer.IRemoteObservable;

/**
 * Generic interface to a catalogue of entries
 * (part of the model layer of the application)
 * @author ups
 */
public interface ICatalogue extends IRemoteObservable {
	/**
	 * Get all names of entries
	 */
	Set<String> getEntryNames() throws RemoteException;
	/**
	 * Lookup entry by name
	 */
	IEntry getEntry(String name) throws RemoteException;
	/**
	 * Search catalogue and return all products that match the given prefix
	 */
	List<Product> search(String prefix) throws RemoteException;
}
